#Makefile for xIPC test app
CC := gcc

C_LIB_TOP_DIR := ../src/c
C_LIB_OBJ := $(C_LIB_TOP_DIR)/platform/linux/linux_thread.o \
             $(C_LIB_TOP_DIR)/platform/linux/linux_str.o \
             $(C_LIB_TOP_DIR)/platform/linux/linux_socket.o \
             $(C_LIB_TOP_DIR)/platform/linux/linux_process.o \
             $(C_LIB_TOP_DIR)/lib/debugmsg.o \
             $(C_LIB_TOP_DIR)/lib/ip.o \
             $(C_LIB_TOP_DIR)/lib/process.o \
             $(C_LIB_TOP_DIR)/lib/string.o \
             $(C_LIB_TOP_DIR)/lib/thread.o \
             $(C_LIB_TOP_DIR)/lib/time.o \
             $(C_LIB_TOP_DIR)/lib/buffer.o \
             $(C_LIB_TOP_DIR)/component/datacheck.o \
             $(C_LIB_TOP_DIR)/component/idmanager.o \
             $(C_LIB_TOP_DIR)/component/message.o   \
             $(C_LIB_TOP_DIR)/component/messagemanager.o \
             $(C_LIB_TOP_DIR)/component/package.o \
             $(C_LIB_TOP_DIR)/component/queuemanager.o \
             $(C_LIB_TOP_DIR)/component/socket.o \
             $(C_LIB_TOP_DIR)/core/iointerface.o \
             $(C_LIB_TOP_DIR)/xIPC.o

LIB_INCLUDE := -I $(C_LIB_TOP_DIR)/platform/linux \
                 -I $(C_LIB_TOP_DIR)/include \
                 -I $(C_LIB_TOP_DIR)
C_LIB_INCLUDE := $(C_LIB_TOP_DIR)/platform/linux \
                 $(C_LIB_TOP_DIR)/include \
                 $(C_LIB_TOP_DIR)
.PHONY: clean  test libdeps dlldeps
test: libdeps $(C_LIB_OBJ)
	$(CC) $(LIB_INCLUDE) -DPIPE_TEST -DPIPE_RECV -c main.c -o main.o
	$(CC) $(LIB_INCLUDE)  $(C_LIB_OBJ) main.o -lpthread -o test_recv
	rm -rf main.o
	$(CC) $(LIB_INCLUDE) -DPIPE_TEST -DPIPE_SEND -c main.c -o main.o
	$(CC) $(LIB_INCLUDE)  $(C_LIB_OBJ) main.o -lpthread -o test_send
	rm -rf main.o
	$(CC) $(LIB_INCLUDE)  -DROUTER -c main.c -o main.o
	$(CC) $(LIB_INCLUDE)  $(C_LIB_OBJ) main.o -lpthread -o test_router
	rm -rf main.o
xIPC.a:$(C_LIB_OBJ)
	ar rcs $@ $^
libdeps:
	cp ../src/c/config_linux_lib.h ../src/c/config.h
dlldeps:
	cp ../src/c/config_linux_dll.h ../src/c/config.h
%.o: %.c
	$(CC) $(LIB_INCLUDE) -c $< -o $@
clean:
	rm -rf $(C_LIB_OBJ) xIPC.a main.o test_recv test_send test_router
	rm -rf ../src/c/config.h